/**
 * @Description: Sample
 * @Author: Mr.Niu
 * @Date: 2022/9/21 11:34
 */
package com.zhiyou.util;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.teaopenapi.models.Config;
import com.zhiyou.crud.bean.User;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.util.Random;

public  class DBUtil {
    //随机数
    Random random = new Random();
    Integer number = random.nextInt(8999)+1000;

    //判断是邮箱还是手机
    public User judge(User user){
        //默认关于手机和邮箱的操作都是手机
        //如果带@就是邮箱
        if (user.getUphone().contains("@")){
            user.setUemail(user.getUphone());
            user.setUphone(null);
        }
        //不带就是手机
        return user;
    }

    //短信验证SMS
    public Integer SMS(User user) {
        return number;
    }
    //邮箱验证
    public Integer SPI(User user) throws Exception {
        Properties properties = new Properties();
        properties.put("mail.transport.protocol", "smtp"); // 连接协议
        properties.put("mail.smtp.host", "smtp.qq.com"); // 主机名
        properties.put("mail.smtp.port", 465); // 端口号
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.ssl.enable", "true"); // 设置是否使用ssl安全连接，一般都使用
        properties.put("mail.debug", "true"); // 设置是否显示debug信息，true会在控制台显示相关信息

        // 得到回话对象
        Session session = Session.getInstance(properties);

        // 获取邮件对象
        Message message = new MimeMessage(session);
        // 设置发件人邮箱地址
        message.setFrom(new InternetAddress("403917438@qq.com"));
        // 设置收件人邮箱地址
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(user.getUemail())); // 一个收件人
        // 设置邮件标题
        message.setSubject("短信注册");
        // 设置邮件内容
        message.setText("您的验证码为："+number+"");

        // 得到邮差对象
        Transport transport = session.getTransport();
        // 连接自己的邮箱账户
        transport.connect("403917438@qq.com", "koucognsrvdabhgi"); // 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
        // 发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
        return number;
    }
    /**
     * 使用AK&SK初始化账号Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    //短信验证静态
    public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                // 您的 AccessKey ID
                .setAccessKeyId(accessKeyId)
                // 您的 AccessKey Secret
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }

}
